//package com.woniu.comment.consumer;
//
//import com.woniu.medicine.comment.RedisKeyUtil;
//import com.woniu.medicine.comment.RedisUtil;
//import com.woniu.medicine.comment.SMSUtil;
//import org.springframework.amqp.rabbit.annotation.RabbitHandler;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//
//@RabbitListener(queues = "login_phone_queue")//消息监听器
//@Component
//public class LoginCodeConsumer {
//    @Resource
//    private RedisUtil redisUtil;
//    @Resource
//    private SMSUtil smsUtil;
//    @RabbitHandler
//    public void sendCode(String mobile) throws Exception {
//        System.out.println("取出消息队列中的手机号码: "+mobile);
//              //调用第三方的短信服务发送验证码
//        Integer code = (int) (Math.random() * 900000) + 100000;
//        int resultCode = smsUtil.sendCode(mobile, code);
//        //判断返回结果是否成功
//        if (resultCode == 2) {
//            //发送成功，保存验证码到 Redis
//            redisUtil.set(RedisKeyUtil.sendLoginCodeKey(mobile), code + "", 5 * 60);
//            //保存一个过期时间为一分钟的键值对到redis  实现一分钟内不能重复发送验证码
//            redisUtil.set(RedisKeyUtil.loginCodeOnMinute(mobile), "", 60);
//            //每次发送验证码后 删除之前累计错误次数
//            redisUtil.del(RedisKeyUtil.sendMessageNumber(mobile));
//
//            //判断该手机号一个小时内发送了几次验证码
//            if (!redisUtil.exist(RedisKeyUtil.sendMessageNumber(mobile))) {
//                //没有发送过 就新增一个
//                redisUtil.set(RedisKeyUtil.sendMessageNumber(mobile), "1", 60 * 60);
//            } else {
//                //否则+1
//                redisUtil.incr(RedisKeyUtil.sendMessageNumber(mobile));
//            }
//
//        }
//        //不用抛异常 这是子线程 不会被全局异常处理器捕获
////        else {
////            //发送失败，抛出异常
////            throw new Exception("短信发送失败");
////        }
//    }
//}
